package com.pond.pond.service;

import com.pond.pond.domain.AppVersion;
import com.pond.pond.domain.dto.CheckUpdateRequest;

import java.util.List;
import java.util.Map;

/**
 * App版本信息Service接口
 */
public interface IAppVersionService {
    
    /**
     * 查询App版本信息
     *
     * @param id App版本信息主键
     * @return App版本信息
     */
    public AppVersion selectAppVersionById(Long id);

    /**
     * 查询App版本信息列表
     *
     * @param appVersion App版本信息
     * @return App版本信息集合
     */
    public List<AppVersion> selectAppVersionList(AppVersion appVersion);

    /**
     * 新增App版本信息
     *
     * @param appVersion App版本信息
     * @return 结果
     */
    public int insertAppVersion(AppVersion appVersion);

    /**
     * 修改App版本信息
     *
     * @param appVersion App版本信息
     * @return 结果
     */
    public int updateAppVersion(AppVersion appVersion);

    /**
     * 批量删除App版本信息
     *
     * @param ids 需要删除的App版本信息主键集合
     * @return 结果
     */
    public int deleteAppVersionByIds(Long[] ids);

    /**
     * 删除App版本信息信息
     *
     * @param id App版本信息主键
     * @return 结果
     */
    public int deleteAppVersionById(Long id);

    /**
     * 检查版本更新
     *
     * @param request 检查更新请求
     * @return 更新检查结果
     */
    public Map<String, Object> checkUpdate(CheckUpdateRequest request);

    /**
     * 发布新版本
     *
     * @param appVersion 版本信息
     * @return 结果
     */
    public int publishVersion(AppVersion appVersion);

    /**
     * 设置为最新版本
     *
     * @param id 版本ID
     * @return 结果
     */
    public int setAsLatestVersion(Long id);

    /**
     * 查询最新版本
     *
     * @return 最新版本信息
     */
    public AppVersion selectLatestVersion();

    /**
     * 查询活跃版本列表
     *
     * @return 版本列表
     */
    public List<AppVersion> selectActiveVersions();
}